package com.syedu.day05;

import java.util.Arrays;

/**
 * description：Java数组的基本使用
 * @author Administrator
 * @date 2022/3/10 15:07
 */
public class ArrayDemo {
    public static void main(String[] args) {
        /**
         * 创建数组
         * 数据类型[] 数组名 = new 数据类型[长度];  Java写法
         * 数据类型 数组名[] = new 数据类型[长度];  偏向C写法
         *
         * 创建数组的同时直接赋值
         * 数据类型[] 数组名 = new 数据类型[]{值,值,值...};
         * 数据类型[] 数组名 = {值,值,值...};
         *
         * 数组创建的两大要点:
         * 1.数组的元素数据类型,数组的元素类型可以是任何类型,但是数组一定是对象类型的!!!
         * 2.数组的长度,即数组可以容纳的元素个数
         *
         * 当数组创建后,数组元素会自动采用该元素类型的默认值来填充,
         * 基本类型 整数类型0,浮点数0.0,布尔类型false,字符型\u0000
         * 对象类型 null
         */
        //创建可以存放三个int的数组
        int[] intArr = new int[3];

        //创建可以存放五个字符串的数组
        String[] strArr = new String[5];

        //创建数组的同时直接赋值
        //double[] scores = new double[]{90.5, 78, 85, 97.5};
        //简写
        double[] scores = {90.5, 78, 85, 97.5};

        /**数组操作*/
        //1.获取数组元素个数(长度)
        int length = intArr.length;
        System.out.println("数组长度: " + length);

        //2.通过下标来访问数组元素,因为数组是连续空间,所以有顺序,就有顺序的编号--下标,下标从0开始,到数组length-1结束
        System.out.println(scores[3]);

        //注意: 访问数组元素时,下标如果超过指定的范围,则会抛出数组下标越界异常:java.lang.ArrayIndexOutOfBoundsException
        //System.out.println(scores[5]);

        //修改元素
        scores[3] = 99.9;

        /**打印数组*/
        //注意: 直接打印数组会得到该数组对应存储的内存地址
        //System.out.println(intArr);//[I@776ec8df

        //1.JDK内置数组打印方法
        System.out.println(Arrays.toString(intArr));
        System.out.println(Arrays.toString(strArr));
        System.out.println(Arrays.toString(scores));

        System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");

        //2.普通for循环打印
        for(int i = 0;i< scores.length;i++){
            System.out.println(scores[i]);
        }

        System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");

        //3.增强for循环打印
        for(double d : scores){
            System.out.println(d);
        }
    }
}